const install = function (Vue) {
    const Ajax = new Vue({
        methods: {
            request(type, url, async, data, callback) {
                // 创建xhr对象
                var xhr;
                if (window.XMLHttpRequest) {
                    xhr = new XMLHttpRequest();
                } else {
                    xhr = new ActiveXObject('Microsoft.XMLHTTP');
                }

                // 异步响应
                if (async) {
                    xhr.onreadystatechange = function () {
                        if (xhr.readyState == 4) {
                            if (xhr.status == 200) {
								callback(xhr.responseText);
                            }
                        }
                    }
                }

                /**
                 * xhr.open(type, url, async)
                 * type: 请求类型
                 * url: 请求地址
                 * async: 是否异步
                 * 如果url是受保护的地址，则把用户名密码当做第四、第五个参数
                 */
                xhr.open(type, url, async);
				
				if("Post" === type){
					xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				}

                /**
                 * send方法参数为要发送到数据，get请求为null
                 */
                xhr.send(data);

				// 同步响应
                if (!async) {
                    if (xhr.readyState == 4) {
                        if (xhr.status == 200) {
                            return xhr.responseText;
                        }
                    }
                }
            },
            get(url, async, callback) {
                this.request("Get", url, async, null, callback);
            },
            post(url, async, data, callback) {
				this.request("Post", url, async, data, callback);
            }
        }
    })
    Vue.prototype.$ajax = Ajax;
}

export default install;
